package cn.b.sky.mes.hr.dao;

import java.util.List;

import cn.b.sky.mes.hr.model.ShiftingPermission;
import cn.b.sky.mes.hr.model.condition.ShiftingPermissionCondition;
import org.apache.ibatis.annotations.Param;

public interface ShiftingPermissionDao {

  /**
   * 
   * <strong>Title : getShiftingPermissionsListByCondition<br>
   * </strong> <strong>Description : </strong>根据条件查询权限数据<br>
   * <strong>Create on : 2016年3月24日 上午10:00:41<br>
   * </strong>
   * <p> 
   * 
   * @param condition
   * @return List<ShiftingPermission>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<ShiftingPermission> getShiftingPermissionsListByCondition(ShiftingPermissionCondition condition);

  /**
   * 
   * <strong>Title : getShiftingPermissionsCountByCondition<br>
   * </strong> <strong>Description : </strong>根据条件查询权限数据数量<br>
   * <strong>Create on : 2016年3月24日 上午10:02:20<br>
   * </strong>
   * <p>
   * 
   * @param condition
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getShiftingPermissionsCountByCondition(ShiftingPermissionCondition condition);

  /**
   * 
   * <strong>Title : getPermissionsByWorkcenter<br>
   * </strong> <strong>Description : </strong>根据工作中心查询权限数据<br>
   * <strong>Create on : 2016年3月24日 上午10:07:45<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param workcenterCode
   * @return List<ShiftingPermission>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<ShiftingPermission> getPermissionsByWorkcenter(@Param("siteCode") String siteCode,
      @Param("workcenterCode") String workcenterCode, @Param("lockFlag") Integer lockFlag);

  /**
   * 
   * <strong>Title : getPermissionsByUser<br>
   * </strong> <strong>Description : </strong>根据用户编号查询权限信息<br>
   * <strong>Create on : 2016年3月24日 上午10:08:28<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param userCode
   * @return List<ShiftingPermission>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<ShiftingPermission> getPermissionsByUser(@Param("siteCode") String siteCode, @Param("userCode") String userCode,
      @Param("lockFlag") Integer lockFlag);

  /**
   * 
   * <strong>Title : getPermissionsByWorkcenterAndUser<br>
   * </strong> <strong>Description : </strong>根据工作中心及用户编号查询权限信息<br>
   * <strong>Create on : 2016年3月24日 上午10:09:04<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param workcenterCode
   * @param userCode
   * @return ShiftingPermission
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  ShiftingPermission getPermissionsByWorkcenterAndUser(@Param("siteCode") String siteCode,
      @Param("workcenterCode") String workcenterCode, @Param("userCode") String userCode,
      @Param("lockFlag") Integer lockFlag);

  /**
   * 
   * <strong>Title : insertShiftingPermission<br></strong>
   * <strong>Description : </strong>保存权限数据<br> 
   * <strong>Create on : 2016年3月24日 上午10:33:58<br></strong>
   * <p>
   * @param shiftingPermission
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertShiftingPermission(ShiftingPermission shiftingPermission);

  /**
   * 
   * <strong>Title : deleteShiftingPermission<br></strong>
   * <strong>Description : </strong>删除权限数据<br> 
   * <strong>Create on : 2016年3月24日 上午10:34:13<br></strong>
   * <p>
   * @param shiftingPermission
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteShiftingPermission(ShiftingPermission shiftingPermission);

}
